Error correction in digital data storage device

ABSTRACT

A data error-correction method, applied in an optical storage device, for correction an original data read from an optical storage media. A bit modulation is performed on the original data. The data is thus checked to see if the original data is error. If error exists, an error bit is added to the error-contained modulated data. An error-correction procedure is carried out to correct error in the error-contained modulated data.

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application claims the priority benefit of Taiwan application serial no. 89103470, filed Feb. 29, 2000.

BACKGROUND OF THE INVENTION

[0002] 1. Field of Invention

[0003] The present invention relates to an error correction method for correcting data read from an optical data storage medium.

[0004] 2. Description of Related Art

[0005] In general, digital data read from an optical disk must being subjected to error detection and error correction to ensure the correctness of data. At present, cross interleave Reed-Solomon code (CIRC) is one of the most commonly used methods of detecting errors when data are read from an optical disk system.

[0006] When data is read out from an optical disc such as a CD-ROM disc, data streams have to pass through a series of modules in sequence. First, the data streams are demodulated by an eight-to-fourteen modulation (EFM) unit so that 14-bit data groups are transformed into 8-bit data groups. The 8-bit data groups are next passed to a one symbol delay unit, a C1 decoder, a de-interleaving unit, a C2 decoder and a two symbol delay unit in sequence. After proper error-detection and correction, position and the error value of the error are resolved.

[0007] Since a single formula is capable of resolving one error, four formulae can be used to find the position of two errors and correct the error value in each of the error. Hence, the C1 decoder inside a conventional CIRC error-correcting system can provide the error correction of two errors and the C2 decoder can provide error correction for four errors. Because conventional CIRC error correction method for optical storage system is a widely accepted standard that can be easily referenced, detail description thereof is omitted.

[0008] In brief, the conventional error correction method for an optical storage system is limited by the number of error-resolving formulae. Hence, only two errors can be corrected inside the C1 decoder. In other words, among the four formulae used inside the C1 decoder, two formulae are used to find the positions of the errors while the remaining two formulae are used to find the correct values of the errors. Error-correcting efficiency is rather low when a conventional error correction method is applied to correct data errors in digital transmission. In the future, the conventional error correction method may be a bottleneck because the demand for data correction is likely to increase rapidly due to a rapid increase in the capacity and operating speed of an optical disk.

SUMMARY OF THE INVENTION

[0009] Accordingly, one object of the present invention is to provide a method for increasing the error-correcting capacity data in the C1 decoding layer.

[0010] A second object of this invention is to provide a method of correcting errors with flags to enhance error correction.

[0011] To achieve these and other advantages and in accordance with the purpose of the invention, as embodied and broadly described herein, the invention provides a data error-correction method, applied in an optical storage device, for correction an original data read from an optical storage media. A bit modulation is performed on the original data. The data is thus checked to see if the original data is error. If error exists, an error bit is added to the error-contained modulated data. An error-correction procedure is carried out to correct error in the error-contained modulated data.

[0012] The present invention further provides a data error-correction method, applied in an optical storage device, for correcting an original data read from an optical storage media. A bit modulation is first performed on the original data. The data is then checked to see if the original data is error. If there is error, add an error bit to the error-contained modulated data and the modulated data is delayed into a data group. A number of syndrome values are computed corresponding to the data group, and then checked to see if the syndrome values are all zero. When not all the syndrome value are zero, the syndrome values are checked to see if any error bit is present in the modulated data of the data group. When total amount of the error bit in the data group does not exceed a threshold value, correct a divisor or a dividend of the error modulated data to the error modulated data. When total amount of the error bit exceeds the threshold value, tagg an erasure bit to the error-contained modulated data.

[0013] The step of correcting the divisor or the dividend comprises the steps of carrying out a computation to find a division number from the error value; checking to see if the division number is zero, wherein when the division number is zero, tagging the error value with an erasure bit; when the division number is non-zero, carrying out a computation to find a divide number of the error value as well as an error value and an error value computation count; and correcting all errors in the data group.

[0014] In addition, the bit modulation comprises a step of carrying out an eight-to-fourteen bit encoding operation. The step of checking the modulated data comprises a step of comparing the digital data by an in-built look-up table in the optical storage device.

[0015] The invention further provides a data error-correction method, applied in an optical storage device, for correction an original data read from an optical storage media. A bit modulation operation is performed on the original data to obtain a modulated data. An error flag is then added if the modulated data is illegal. The modulated data with the error flag is delayed if any into a data group. Then, a decoding operation is performed on the data group. The mentioned decoding operation further comprises steps as follows. Syndrome values are first computed. Then, the number of error flags is determined if at least one of the syndrome values is not to zero. A divisor of an error value is computed if the number of the error flags is greater than a threshold value, otherwise tag an erasure bit to the decoded data group. A dividend of the error value is computed if the divisor is not zero, otherwise tagging an erasure bit to the decoded data group. The error value is computed and then the error is corrected if the times of computing the error value is less than the threshold value.

[0016] The bit modulation operation is a eight-to fourteen modulation (EFM) process, and the threshold value is 4, for example.

[0017] It is to be understood that both the foregoing general description and the following detailed description are exemplary, and are intended to provide further explanation of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0018] The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. In the drawings,

[0019]FIG. 1 is a schematic diagram showing an eight-to-fourteen modulation;

[0020]FIG. 2 is a block diagram according to the data error correction of this invention; and

[0021]FIG. 3 is a flow diagram showing the steps in correcting digital data errors according to the error correction method of this invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0022] Reference will now be made in detail to the present preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the description to refer to the same or like parts.

[0023] The invention provides a data error-correction method, which is applied in an optical storage device, for correction an original data read from an optical storage media. The optical storage device can be a CD-compatible drive, and the optical storage media can be a CD-compatible disk. In general, before data stored in an optical disk is read by an optical storage device, a bit modulation encoding is carried out. For example, for optical disk such as a CD-ROM or disk of similar specification, an eight-to-fourteen bit modulation (EFM) is executed. In more advanced DVD type of optical system, an eight-to-sixteen bit modulation (EFM II specification) is executed. In the following description, a CD-ROM is chosen as an example. In general, as shown in Table 1, every optical storage device has a built-in EFM list corresponding to transforming data bits having 8-bit length into channel bits having 14-bit length. There are 2¹⁴=256 different ways of combining eight bits of data. On the other hand, there are 2¹⁴=16384 different ways of combining 14 bits of data. Since the number of different ways of combining eight bits is considerably lower than that of combining 14 bits, it is impossible to find a one-to-one correspondence between all 8-bit data bit and all 14-bit channel bit.

[0024]FIG. 1 is a schematic diagram showing the modulation in an eight-to-fourteen modulation. Assume that the 8-bit data area is represented by 10 while the area after transformation into legal (satisfying the specification) 14-bit channel bit is represented by 12 a. There is a one-to-one correspondence between the area 10 and the area 12 a, and the transformation is found in the internal look-up table. In general, a channel bit format, such as a 14-bit format, is used for storing data in the optical storage medium, while a data bit format, such as a 8-bit format, is used for data processing in the optical storage device when reading data from the optical medium. Therefore, when data is read from the optical medium by the optical storage device, the 14-bit format has to be modulated into 8-bit format first. A built-in look-up table records such a mapping relationship between the channel bit and the data bit, and a mapping example is listed in Table I for reference. When the channel bit read from the disk is not within the mapping table, errors occur when performing the EFM procedure; i.e., there are errors containing in the data.

[0025] Hence, when the a channel bit in the field 12 b is transformed into an 8-bit data bit, an error flag or an error bit is tagged on the 8-bit data. The tagging of the error flag or error bit serves to inform that an error has occurred. Subsequently, in a C1 error-correction operation, location of the errors is marked from the error flag (or error bit). By introducing this tagging, all four groups of error-resolving polynomial formulae can be fully used for finding correcting errors without having to compute positions of the errors. Thus, the four polynomial formulae is capable of resolving altogether four error values instead of just two by a conventional method. TABLE 1 EFM Channel Bits Data Bits 0 01001000100000 00000000 1 10000100000000 00000001 2 10010000100000 00000010 3 10001000100000 00000011 4 01000100000000 00000100 5 00000100010000 00000101 . . . . . . . . . 255  00100000010010 11111111

[0026]FIG. 2 is a block diagram according to the digital data error correction method of this invention.

[0027] Data read from an optical disk is passed to an EFM unit 30. Inside the EFM unit 30, a data stream that includes 32 data each having 14 bits is modulated. In other words, 14-bit data are transformed into 8-bit data. The optical storage system then refers to a look-up table to decide whether the modulated bit groups passing through the EFM unit is a legal 8-bit group or not. That means, the optical system has to decide whether a proper 14-bit to 8-bit transformation that satisfies the method as defined by the values in the look-up table has taken place or not. This look-up table can be identical to the one shown in Table 1 or according to CD-ROM or some other optical disk specified values. In addition, the look-up table can be constructed inside a read-only-memory (ROM) for easy comparison with the reading from the optical disk system.

[0028] When the EFM modulated bit group (8-bit) is found not to be in the look-up table, such as in the illegal set 12 b shown in FIG. 1, error is detected in the modulation. That means, the read-out data contains error value(s). Under such circumstances, every bit group of the data flow, or every 8-bit data among the 32-bit group in this example, is given an error bit or an error flag. Through these added error bits or error flag, the system is informed about the errors in the transmitted data. In subsequent C1 decoding, since error positions are tagged, there is no need to search for the positions of errors so that computing resources can be redirected to finding the error values.

[0029] The data is next fed into the one symbol delay unit 32 so that the data is randomized. A 32 bit-group code word is transferred from the one symbol delay unit 32 to a C1 decoder 34 for carrying out error value correction. Since data coming from the EFM unit 30 has already been checked for attunement to the EFM specification, the C1 decoder 34 can use all four parity (four polynomial formulae) for finding error values. Hence, the error-correcting ability of the C1 decoder 34 increases from a capacity of finding just two error values in a conventional system to four error values in this invention.

[0030] Similarly, if errors are still found after going through the C1 decoder 34, which means there are more than 4 error values, an erasure bit or an erasure flag is added on to every bit group. Thereafter, a group of 28 (8+erasure) bits data (an erasure bit is tagged to every 8 bit data) are transferred from the C1 decoder 34 to a de-interleaving unit 36 also known as unequal delay unit. After the group of 28-bit datais randomized inside the de-interleaving unit 36, a group of 24-bit data is sent to a C2 decoder 38 to carry out C2 decoder error-resolving operations. The processed 24 bit groups of data are next transferred to a two-symbol delay unit 40.

[0031] The aforementioned eight-to-fourteen modulation (EFM) unit 30 can be controlled by a synchronous protection device 24, a synchronous detection device 22 and a servo control device 20. Since the synchronous protection device 24, the synchronous detection device 22 and the servo control device 20 are not a major aspect in this invention, detail descriptions of their operations are omitted. Furthermore, the designs of these devices are very much dependent on actual conditions, and hence should not be limited to the format shown in the figure.

[0032] Following the error correction steps shown in FIG. 2, the capacity of CIRC in correcting errors in digital data read from the optical disk is raised. A high error-correcting capacity is beneficial to the read rate of high-speed optical disk.

[0033]FIG. 3 is a flow diagram showing the steps in correcting digital data errors according to the error correction method of this invention. The flow diagram in FIG. 3 explains the operation of the C1 decoder as shown in FIG. 2.

[0034] In step 100, syndrome values S0, S1, S2 and S3 are computed. The computation of syndrome values is related to optical disk format that can be abstracted from manufacturer's specification. In step 102, the syndrome values S0, S1, S2 and S3 are checked to see if all of them are zero. When all syndrome values S0, S1, S2 and S3 are zeroes, no errors are detected in the data. Hence, the system is informed about this in step 120 by branching out from the error-correcting route.

[0035] When not all the syndrome values S0, S1, S2 and S3 have a non-zero value, step 104 is executed. In step 104, the data is checked to see whether there is any error bits or error flag. If the error flag exists, a first error-correction program (including steps 106˜116) capable of eliminating no more than four error values is conducted. In step 105, it determines whether the number of the error flags is greater than 4. If the number of the error flags is greater than 4, than step 106 is executed; otherwise the error value is labeled with an erasure bit in step 107.

[0036] To carry out the first error-correction program, the divisor of the error value is computed in step 106. In step 108, the divisor is checked to see whether it has a value of zero or not. If the division number is zero, the error value is labeled with an erasure bit in step 109 and then transmitted to the C2 decoder. However, if the divisor is non-zero, which means that the error value results from an error dividend rather than an error divisor, step 110 is executed to find out the dividend of the error value. In step 112, the error value is corrected by correcting the dividend. After finding the error value, a counter can be used to accumulate the number of calculations of the error value. In step 114, the number of calculations is checked to see if the computing times are less than four. When the value is equal to four, step 116 is executed to correct the error value. On the other hand, if the computing times are still less than four, control is returned to step 106 for calculating the next error value.

[0037] Meanwhile, in step 104, if there is no error flag, a second error-correction program (steps 106˜116) is executed for correcting two errors.

[0038] First, in step 130, the square of syndrome value S1 is compared with the product of the syndrome value S0 and S2. If S1 ²=S0*S2, step 132 is executed. In step 132, possibility of finding the error position is determined. If the error position can be found, step 136 is executed for correcting the error. On the contrary, step 134 is executed to search the data series and then returned to step 132 again to judge if the error position can be found.

[0039] When the square of syndrome value S1 is not equal to the product of syndrome values S0 and S2, step 140 is executed to search the data series. In step 142, it is checked if the error position count exceeds two. If the error position count is equal to two, step 144 is executed so that the error value is computed. This is followed by step 146 for correcting the error. On the contrary, if the error position count is less than two, step 148 is executed so that the data is labeled with an erasure bit. Finally, the erasure bit labeled data is sent to the C2 decoder for error correction.

[0040] Hence, according to this invention, if there are illegal bits after modulation inside the EFM unit 30 in FIG. 2, error positions can be obtained beforehand through the generated error flags. There is no need for calculating the error positions. Thus, error-resolving capacity of the C1 decoder is raised to four errors. In addition, even when legal bits are produced after passing through the EFM unit 30, the C1 decoder can still carry out decoding using a method similar to the conventional one.

[0041] According to the method of this invention, after data is passed through the EFM unit, the modulated data is checked to determine if legal data bytes are transferred or not. If illegal, the C1 decoder can use its four parity bits to calculate the error values. There is no need for searching error position. Consequently, error-correcting power of the C1 decoder is greatly increased.

[0042] In the above description, the number of parity bits in each of the decoders C1 and C2 is taken as four. When the number of parity bits used in C1 and C2 decoder is raised to eight, the method of this invention still applies. In fact, the most important aspect of this invention is the pre-judgement of modulated bits to see if the specification is met before carrying out the CIRC error-correction procedure. If modulated bits do not meet the specification, an error bit or an error flag is tagged onto each bit group informing the system that the input data are in error. Hence, error position calculation is prevented.

[0043] In summary, the error-correction method of this invention is able to increase the error-correcting capacity of digital data in the Cl layer. In addition, utilizing the correctness of bit modulation to carry out a first error detection, error-resolving capacity in subsequent C1 and C2 decoder layer is raised.

[0044] It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the present invention without departing from the scope or spirit of the invention. In view of the foregoing, it is intended that the present invention cover modifications and variations of this invention provided they fall within the scope of the following claims and their equivalents. 

What is claimed is:
 1. A data error-correction method, applied in an optical storage device, for correction an original data read from an optical storage media, comprising the steps of: performing a bit modulation on the original data; checking the data to see if the original data is error; if error, adding an error bit to the error-contained modulated data; and carrying out an error-correction procedure to correct error in the error-contained modulated data.
 2. The method of claim 1 , wherein the step of carrying out the error-correction procedure further comprises the steps of: computing syndrome values; determining the number of error flags if at least one of the syndrome values is not zero; computing a divisor of an error value if the number of the error flags is greater than 4, otherwise tagging an erasure bit to the decoded data group; computing a dividend of the error value if the divisor is not zero, otherwise tagging an erasure bit to the decoded data group; computing the error value; correcting error if the times of computing the error value is less than four.
 3. The method of claim 1 , wherein the step of performing the bit modulation comprises carrying out an eight-to-fourteen bit encoding operation.
 4. The method of claim 1 , wherein the step of checking the modulated data further comprises a step of comparing the data by a built-in look-up table in the optical storage device.
 5. The method of claim 1 , wherein the optical storage device is a CD-compatible drive.
 6. The method of claim 1 , wherein the optical storage media is a CD-compatible disk.
 7. A data error-correction method, applied in an optical storage device, for correcting an original data read from an optical storage media, comprising the steps of: performing a bit modulation on the original data; checking the data to see if the original data is error; if error, adding an error bit to the error-contained modulated data; delaying the modulated data into a data group; computing a plurality of syndrome values corresponding to the data group; checking to see if the syndrome values are all zero; when not all the syndrome value are zero, checking to see if any error bit is present in the modulated data of the data group; when total amount of the error bit in the data group does not exceed a threshold value, correcting a divisor or a dividend of the error modulated data to the error modulated data; and when total amount of the error bit exceeds the threshold value, tagging an erasure bit to the error-contained modulated data.
 8. The method of claim 7 , wherein the step of correcting the divisor or the dividend comprises the steps of: carrying out a computation to find a division number from the error value; checking to see if the division number is zero, wherein when the division number is zero, tagging the error value with an erasure bit; when the division number is non-zero, carrying out a computation to find a divide number of the error value as well as an error value and an error value computation count; and correcting all errors in the data group.
 9. The method of claim 7 , wherein the step of performing the bit modulation comprises carrying out an eight-to-fourteen bit encoding operation.
 10. The method of claim 7 , wherein the step of checking the modulated data comprises a step of comparing the digital data by an in-built look-up table in the optical storage device.
 11. The method of claim 7 , wherein the optical storage device is a CD-compatible drive.
 12. The method of claim 7 , wherein the optical storage media is a CD-compatible disk.
 13. A data error-correction method, applied in an optical storage device, for correction an original data read from an optical storage media, comprising the steps of: performing a bit modulation operation on the original data to obtain a modulated data; adding an error flag if the modulated data is illegal; delaying the modulated data with the error flag if any into a data group; performing a decoding operation on the data group, wherein the decoding operation further comprising the steps of: computing syndrome values; determining the number of error flags if at least one of the syndrome values is not to zero; computing a divisor of an error value if the number of the error flags is greater than a threshold value, otherwise tagging an erasure bit to the decoded data group; computing a dividend of the error value if the divisor is not zero, otherwise tagging an erasure bit to the decoded data group; computing the error value; correcting error if the times of computing the error value is less than the threshold value.
 14. The method of claim 13 , wherein the bit modulation operation comprises a eight-to fourteen modulation (EFM) process.
 15. The method of claim 13 , wherein the threshold value is
 4. 16. The method of claim 13 , wherein the optical storage device is a CD-compatible drive.
 17. The method of claim 13 , wherein the optical storage media is a CD-compatible disk. 